/**
 * Creat with IntelliJ IDEA
 * Description:
 * User:WZW
 * Date:2022-04-18
 * Time:20:55
 */
public class Demo6 {

    public static final long count = 10_0000_0000;

    public static void concurrency() throws InterruptedException {
        long beg = System.currentTimeMillis();
        Thread t1 = new Thread(()->{
            long a = 0;
            for (int i = 0; i < count; i++) {
                a++;
            }
        });
        t1.start();
        Thread t2 = new Thread(()->{
            long b = 0;
            for (int i = 0; i < count; i++) {
                b++;
            }
        });
        t2.start();
        //此处不能直接计算时间，因为这里是main线程执行的，时间也是由main线程执行的
        //而自增操作是由线程执行的，如果代码走到这里就直接记录时间是不准确的
        //因此需要使用join方法让main线程等待t1和t2都执行完之后再往下走：记录时间
        t1.join();//让main线程等待t1执行完 - join方法可能抛异常，此处直接使用throws处理了
        t2.join();//让main线程等待t2执行完
        long end = System.currentTimeMillis();
        System.out.println("执行时间：" + (end - beg) + "ms");
    }

    public static void main(String[] args) throws InterruptedException {
        concurrency();
    }
}
